package com.wu.utils;


/**
 * 脱敏工具类
 */
public final class FuzzyUtil {

    private FuzzyUtil() {
    }
    /**
     * 第一个为*号
     */
    public static String firstFuzzy(String value) {
        if (null == value || value.trim().length() == 0) {
            return "";
        }
        return "*" + value.substring(1);
    }


    /**
     * 卡号脱敏
     *
     * @param value  脱敏的原始数据
     * @param before 明文显示前几位
     * @param mid    中间脱敏显示多少个*
     * @param end    明文显示后几位
     * @return 脱敏后的数据
     * @see "脱敏数据1234567890"，前3中间4后3，则显示123****890
     */
    public static String cardFuzzy(String value, int before, int mid, int end) {
        if (null == value || value.trim().length() == 0) {
            return "";
        }
        if (value.length() < before + end) {
            return value;
        }
        StringBuilder buf = new StringBuilder();
        buf.append(value.substring(0, before));
        for (int i = 0; i < mid; i++) {
            buf.append("*");
        }
        buf.append(value.substring(value.length() - end));
        return buf.toString();
    }
}